package com.upay.android.domain.payment;

import java.io.Serializable;

import org.apache.commons.lang.builder.ToStringBuilder;

import com.upay.android.domain.group.GroupAccount;
import com.upay.android.domain.transaction.TransactionLine;

public abstract class PaymentDetail implements Serializable {

	/* ---- Constants ---- */
	private static final long serialVersionUID = 201203032116L;
	public static final String PAYMENT_ID = "payment_id";
	
	
	/* ---- Instance Variables ----*/

	protected boolean selected = false;
	protected TransactionLine transactionLine= null;
	protected GroupAccount groupAccount = null;
	
	/* ---- Constructors ---- */
	
	public PaymentDetail() {
		super();
	}
	
	public PaymentDetail(GroupAccount groupAccount, TransactionLine transactionLine) {
		this.groupAccount = groupAccount;
		this.transactionLine = transactionLine;
	}

	/* ---- Business Methods ----*/
	
    public String toString() {
    	return new ToStringBuilder(this)
            .appendSuper(super.toString())
            .append("selected", selected)
            .append("groupAccount", groupAccount.toString())
            .append("transactionLine", transactionLine.toString())
            .toString();
    }

	/* ---- Getters and Setters ----*/

	public boolean isSelected() {
		return selected;
	}

	public void setSelected(boolean selected) {
		this.selected = selected;
	}

	public TransactionLine getTransactionLine() {
		return transactionLine;
	}

	public void setTransactionLine(TransactionLine transactionLine) {
		this.transactionLine = transactionLine;
	}

	public GroupAccount getGroupAccount() {
		return groupAccount;
	}

	public void setGroupAccount(GroupAccount groupAccount) {
		this.groupAccount = groupAccount;
	}

	
}
